#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h> 
//int main()
//{
//	char s[] = "\\123456\123456\t";
//	printf("%d\n",strlen(s));
//	return 0;
//}

//int main()//(n*n-n+1)
//{
//	int m = 0;
//	while (~scanf("%d", &m))
//	{
//		int sum = 0;
//		int a = m*m - m + 1;
//		printf("%d", a);
//		for (int i = 0; i < m - 1; i++)
//		{
//			a = a + 2;
//			printf("+%d", a);
//		}
//		printf("\n");
//	}
//	return 0;
//}

//int main()
//{
//	int n = 0;
//	while (~scanf("%d", &n))
//	{
//		int sum = 0;
//		int a = 2;
//		for (int i = 0; i < n; i++)
//		{
//			sum += a;
//			a += 3;
//		}
//		printf("%d\n", sum);
//	}
//	return 0;
//}

//int main()
//{
//	int n = 0;//5
//	while (~scanf("%d", &n))
//	{
//		int i = 0;
//		int j = 0;
//		for (i = 0; i < n; i++)
//		{
//			for (j = 0; j < n; j++)
//			{
//				if (i == j)
//				{
//					printf("*");
//				}
//				else if (i + j + 1 == n)
//				{
//					printf("*");
//				}
//				else
//				{
//					printf(" ");
//				}
//			}
//			printf("\n");
//		}
//	}
//	return 0;
//}

//int main()
//{
//	int n = 0;
//	while (~scanf("%d", &n))
//	{
//		for (int i = 0; i < n; i++)
//		{
//			for (int j = 0; j < i; j++)
//			{
//				printf(" ");
//			}
//			printf("*\n");
//		}
//	}
//	return 0;
//}

//int main()
//{
//	int n = 0;
//	while (~scanf("%d", &n))
//	{
//		for (int i = 0; i < n; i++)
//		{
//			for (int j = 0; j < n; j++)
//			{
//				if (i == 0 || i == n - 1)
//				{
//					printf("* ");
//				}
//				else if (j == 0 || j == n - 1)
//				{
//					printf("* ");
//				}
//				else
//				{
//					printf("  ");
//				}
//			}
//			printf("\n");
//		}
//	}
//	return 0;
//}

//int main()
//{
//	int n = 0;
//	while (~scanf("%d", &n))
//	{
//		for (int i = 0; i < n; i++)
//		{
//			for (int j = 0; j < n; j++)
//			{
//				if (i == j)
//				{
//					printf("* ");
//				}
//				 else if (j == 0)
//				 {
//					 printf("* ");
//				 }
//				 else if (i == n - 1)
//				 {
//					 printf("* ");
//				 }
//				 else
//				 {
//					 printf("  ");
//				 }
//			}
//			printf("\n");
//		}
//	}
//	return 0;
//}

//int main()
//{
//	float arr[5] = { 0 };
//	for (int i = 0; i < 5; i++)
//	{
//		scanf("%f", &arr[i]);
//	}
//	float sum = 0;
//	for (int i = 0; i < 5; i++)
//	{
//		sum += arr[i];
//	}
//	printf("%.2f", sum / 5);
//	return 0;
//}

//int main()
//{
//	int n = 0;
//	while (~scanf("%d", &n))
//	{
//		switch (n)
//		{
//		case 200:
//			printf("OK\n");
//			break;
//		case 202:
//			printf("Accepted\n");
//			break;
//		case 400:
//			printf("Bad Request\n");
//			break;
//		case 403:
//			printf("Forbidden\n");
//			break;
//		case 404:
//			printf("Not Found\n");
//			break;
//		case 500:
//			printf("Internal Server Error\n");
//			break;
//		case 502:
//			printf("Bad Gateway\n");
//			break;
//		}
//	}
//	return 0;
//}

//int main()
//{
//	int n = 0;
//	while (~scanf("%d", &n))
//	{
//		for (int i = 1; i <= n; i++)
//		{
//			for (int j = 1; j <= i; j++)
//			{
//				printf("%d ", j);
//			}
//			printf("\n");
//		}
//	}
//	return 0;
//}

//int exchange(const void *elem1, const void *elem2)
//{
//	int *x = (int *)elem1;
//	int *y = (int *)elem2;
//	return *y - *x;
//}
//int main()
//{
//	float arr[7] = { 0 };
//	while (~scanf("%f",&arr[0]))
//	{
//		for (int i = 1; i < 7; i++)
//		{
//			scanf("%f", &arr[i]);
//		}
//		qsort(arr, 7, sizeof(float), exchange);
//		float sum = 0;
//		for (int j = 1; j < 6; j++)
//		{
//			sum += arr[j];
//		}
//		printf("%.2f\n", sum / 5);
//	}
//	return 0;
//}

int main()
{
	int arr[100] = { 0 };
	int n = 0;
	scanf("%d", &n);
	for (int m = 0; m < n; m++)
	{
		scanf("%d", &arr[m]);
	}
	int tmp = 0;
	scanf("%d", &tmp);
	int m = n;
	int i = 0;
	int tmp1 = 0;
	if (n >= 2)
	{
		for (i = 0; i < n; i++)
		{
			if (tmp < arr[i])
			{
				tmp1 = i;
				break;
			}
			else if (i>n - 2)
			{
				tmp1 = n;
				break;
			}
		}
		for (i = 0; i < n; i++)
		{
			if (tmp < arr[i])
			{
				arr[m] = arr[m - 1];
				m--;
			}
		}
		arr[tmp1] = tmp;
	}

	if (n == 1)
	{
		if (tmp>arr[0])
		{
			arr[1] = tmp;
		}
	}
	for (int i = 0; i < n + 1; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}